1. Field of the Invention
The present invention relates to a design supporting system for supporting the design of a target system to be built by implementing at least one software module, and at least one hardware module, a design supporting method, and a computer-readable recording medium recorded with a design supporting program.
2. Description of the Background Art
There is known a technology relating to an integrated design environment for building a system by implementing hardware modules as disclosed in e.g. Japanese Unexamined Patent Publication No. 2002-123563 (first reference). The first reference discloses a method to perform a syntax-analysis of a description file of an electronic circuit model described in a high-level description language to generate a control-data-flow-graph. The control-data-flow-graph is divided into threads each composed of a set of a plurality of connected nodes. The divided threads are optimized to meet with circuit area size constraints and timing constraints so as to obtain designation information of the number, the function, the placement, and the routing of logic cells i.e. hardware modules concerning the electronic circuit model.
There is also known a technology relating to a system for managing software modules as disclosed in e.g. Japanese Unexamined Patent Publication No. 2005-301985 (second reference). The information processor disclosed in the second reference has a plurality of objects, and an object generating means for managing the objects. Each of the objects has an attribute information managing means for managing attribute information by associating attribute names with attribute values, and a common interface for accepting requests on setting and acquisition of the attribute information. The object generating means sets the attribute information corresponding to the type of the generated object to the object.
There is also known a technology of building a system by implementing a software module and a hardware module, as disclosed in “Development of a tool for generating an interface between software and hardware: software-hardware co-designing” (third reference) written by Shinya Honda, accomplishment report collection in 2003, published by the Information-Technology Promotion Agency, Japan (Unexplored Software Division). The third reference recites an approach of reading a description file of an object to be designed, classifying the description file into three parts i.e. a part used for a hardware module, a part used for a software module, and a part used for an interface between the hardware and the software modules, and automatically generating the interface.
In recent years, in the technical field of embedded computers such as information appliances or cellular phones, where complex and versatile design is increasingly demanded, it is essential to build a system in a short term, while satisfying constraints such as circuit area size, timing, performance, and power consumption. It is necessary to establish a technology of selecting modules satisfying the constraints from a plurality of hardware modules and a plurality of software modules for implementation to satisfy the constraints which conflict with each other, such as circuit area size, performance, and power consumption. For instance, it is necessary to select a software module in emphasizing cost reduction, to select a hardware module in emphasizing performance, and to implement the selected modules. Specifically, in a design supporting system having a plurality of hardware modules and a plurality of software modules, it is required to properly select the modules satisfying the constraints, and to allow the selected modules to be implemented with latitude.
The arrangement recited in the first reference is directed to building a system by implementing solely hardware modules, with no implementation of a software module. Contrary to this, the arrangement recited in the second reference is directed to a technology of implementing solely software modules. The arrangements recited in the first and second references are related to technologies of building systems by implementing hardware modules, and implementing software modules, respectively. These arrangements cannot be applied to building an embedded computer system which is built with both software modules and hardware modules. In particular, since an interface for a hardware module, and an interface for a software module are generally different from each other, intended implementation of a software module and a hardware module cannot be realized, even if intended implementation of solely hardware modules, and implementation of solely software modules are realized.
The arrangement recited in the third reference is directed to an approach of dividing one system description into a software module and a hardware module, and generating an interface for the software module and an interface for the hardware module as an interrupt synchronization mechanism. This is a closest approach applicable to the technical field of embedded computers. However, the arrangement of the third reference is proposed simply for implementing a software module and a hardware module. If the software module is changed to a hardware module due to a constraint on the performance, or if the hardware module is changed to a software module due to a constraint on the production cost, the interfaces between the software module and the hardware module are meaningless.
In other words, the first through the third references disclose technologies of fixedly providing interfaces between software modules, interfaces between hardware modules, or interfaces between a software module and a hardware module, and do not suggest an idea of changing the interfaces depending on the constraints. For instance, in the case where a software module is replaced by a hardware module, it is necessary to change the interfaces between the relevant modules, i.e. to re-design a system.